package com.cmxh.mycloudnotes.Service;

import com.cmxh.mycloudnotes.mapper.UserMapper;
import com.cmxh.mycloudnotes.pojo.UpdPwd;
import com.cmxh.mycloudnotes.pojo.User;
import com.cmxh.mycloudnotes.util.Code01;
import com.cmxh.mycloudnotes.util.Md5Util;
import com.cmxh.mycloudnotes.util.Result01;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class UserServiceImpl implements UserService{
    @Autowired
    private UserMapper dao;


    @Override
    public int saveUser(User user) {
        // 页面传递过来的密码是明文  但是数据库要加密的 所以此时要把页面传递过来的密码进行加
        String miwen = Md5Util.encrypt(user.getPassword());
        System.out.println(miwen);
        // 把user中的密码改成密文
        user.setPassword(miwen);


        return dao.saveUser(user);
    }

    @Override
    public Result01 login(User user) {

        // 根据用户名去数据表查询一条数据
        User xx = dao.findUsesByUname(user.getUsername());
        if(xx==null){
            // 说明用户名不存在
            return new Result01( Code01.GET_ERR,"用户名不存在");
        }else{
            // 说明用户名是对的 接下来判断密码
            String miwen = Md5Util.encrypt(user.getPassword());
            if(miwen.equals(xx.getPassword())){
                return new Result01( Code01.GET_OK,xx,"登录成功");
            }else{
                return new Result01( Code01.GET_ERR,"密码错误");
            }
        }

    }

    @Override
    public Result01 updateZt(UpdPwd user) {
        if (user.getNewpwd().equals( user.getOldpwd() )) {
            return new Result01( Code01.update_err, "新密码不能与旧密码相同" );
        } else {
            //将新密码和旧密码进行加密
            String newpwd = Md5Util.encrypt( user.getNewpwd() );
            String old = Md5Util.encrypt( user.getOldpwd() );
            //重新传到这个对象中
            user.setOldpwd( old );
            user.setNewpwd( newpwd );
            //将这个对象传输到数据层进行修改
            int update = dao.updateZt( user );
            if (update > 0) {
                return new Result01( Code01.UPDATE_OK, "修改成功" );
            } else {
                return new Result01( Code01.UPDATE_ERR, "修改失败" );
            }

        }


    }

    @Override
    public int updatePwd(User user) {
        return dao.updatePwd( user );
    }

    @Override
    public int updatePic(User user) {
        return dao.updatePic( user );
    }
}

